home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / DIAGXPRT.PAK / SERIALZE.H < prev    next >
C/C++ Source or Header  |  1997-05-06  |  2KB  |  71 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows
  3. // (C) Copyright 1995, 1995 by Borland International, All Rights Reserved
  4. //
  5. //   Definition of TSerializer class
  6. //----------------------------------------------------------------------------
  7. #if !defined(OWL_SERIALZE_H)
  8. #define OWL_SERIALZE_H
  9.  
  10. #if !defined(OWL_OWLDEFS_H)
  11. # include <owl/owldefs.h>
  12. #endif
  13.  
  14. #if !defined(OWL_EVENTHAN_H)
  15. # include <owl/eventhan.h>
  16. #endif
  17.  
  18. //
  19. // class TSerializer
  20. // ~~~~~ ~~~~~~~~~~~
  21. // This class sends a block of data to another window.
  22. //
  23. class _OWLCLASS TSerializer {
  24.   public:
  25.     enum BlockType {
  26.       End = 0,    // end of data, lParam == 0
  27.       Data1,      // lParam data
  28.       Data2,      // lParam data
  29.       Data3,      // lParam data
  30.       Data4,      // lParam data
  31.       Begin,      // beginning of data, lParam length of data
  32.     };
  33.     TSerializer(HWND hwndTarget, uint32 length, void* data);
  34. };
  35.  
  36. //
  37. // Serializer window targets should catch the following registered message
  38. // to receive the block of data.
  39. //
  40. #define SerializerMessage "SERIALIZERMESSAGE"
  41.  
  42. //
  43. // class TSerializeReceiver
  44. // ~~~~~ ~~~~~~~~~~~~~~~~~~
  45. // Mix-in class that automatically puts together the block of data sent by
  46. // TSerializer.
  47. //
  48. class _OWLCLASS TSerializeReceiver : virtual public TEventHandler {
  49.   public:
  50.     TSerializeReceiver();
  51.  
  52.     // Derived classes should override this function to copy the received data.
  53.     // passed to it.
  54.     //
  55.     virtual void DataReceived(uint32 length, void* data);
  56.  
  57.   protected:
  58.     int32 BlockReceived(uint, int32);
  59.  
  60.   private:
  61.     char HUGE* Data;
  62.     char HUGE* CurPtr;
  63.     uint32 Length;
  64.  
  65.   DECLARE_RESPONSE_TABLE(TSerializeReceiver);
  66. };
  67.  
  68.  
  69.  
  70. #endif //OWL_SERIALZE_H
  71.